<?php
/**
 * Created by PhpStorm.
 * User: chenyu
 * Date: 18-3-16
 * Time: 下午9:48
 *
 * 对象：模块访问权限检测对象
 * 功能：通过token对将要访问的的模块
 *      1.通过token换取用户信息
 *      2.验证用户登录信息
 *      3.验证用户用户权限
 *      4.缓存token
 *
 */

class TokenAuthForModule extends OB
{
    private $token;//输入的token
    private $fromModuleId;//来源moduleId
    private $user=array();//用户信息
    private $tokenCacheKey;//缓存token信息的key

    /**
     * 构造函数，初始化工作
     *
     * @param $token
     * @throws Exception
     * @return void
     */
    public function setArgs($token)
    {
        $this->token=$token;
        if(!$this->token){
            throw new Exception('token异常',0);
        }
        $this->analysisToken();
    }

    /**
     * 解析token,获取用户信息
     */
    private function analysisToken()
    {

        $this->user=array('id'=>1);
        $this->fromModuleId=5;
        $this->tokenCacheKey=$this->user['id'].'_'.$this->fromModuleId;
    }

    /**
     * 验证用户是否登录
     */
    private function authUserLogin()
    {

    }

    /**
     * 验证用户权限
     */
    private function authUserPermission()
    {

    }

    /**
     * 缓存当前token
     */
    private function cacheToken()
    {

    }

    /**
     * 执行检查
     */
    public function exec()
    {
        $this->authUserLogin();
        $this->authUserPermission();
        $this->cacheToken();
        return true;

    }

}
